package cn.xuguowen.user.designPatten.template.prod;

import cn.xuguowen.bean.Result;
import cn.xuguowen.bean.ResultCode;

/**
 * ClassName: ApiTemplate
 * Package: cn.xuguowen.user.designPatten.template.prod
 * Description:
 *
 * @Author 徐国文
 * @Create 2023/4/25 9:23
 * @Version 1.0
 */
public class ApiTemplate {
    /**
     * 模板方法
     * @param result
     * @param action
     */
    public void execute(Result result, final Action action) {
        try {
            // 参数校验
            action.validate();
            // 开始执行
            action.execute();
            // 执行完成后
            action.after();

            result.setSuccess(true);
            result.setCode(1024);
        } catch (Exception e) {
            result.setSuccess(false);
            result.setCode(ResultCode.ERROR);
        }
    }

}
